/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：DynamicModel.js<br>
 * 日期：2017年1月3日<br>
 * 作者: 王中山<br>
 * 功能：动态元件模型<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");

/**
 * 类型名称：Rainier.UI.V2.DynamicModel<br>
 * 类型功能：通用器件模型<br>
 */
Rainier.UI.V2.DynamicModel = Rainier.UI.V2.DeviceModel.extend({
	
	NAME : "Rainier.UI.V2.DynamicModel",
	
	/**
	 * 函数名称：Rainier.UI.V2.DynamicModel.init<br>
	 * 函数功能：构造函数<br>
	 * 参数输入:property属性对象<br>
	 * 异常信息：无<br>
	 */
	init : function(property){
		var dummy = jQuery.extend(true,{},property);
		this._super(dummy?property:{});
		this.currentState = {};
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.DynamicModel.<br>
	 * 函数功能：<br>
	 * 参数输入：<br>
	 * 参数输出：<br>
	 * 函数返回：<br>
	 * 异常信息：<br>
	 */
	changeState : function(state){
		
		var oldState = this.getCurrentState();
		
		var event = Rainier.UI.V2.DynamicModel.DYNAMIC_MODEL_EVENT_CHANGE_STATE;
		
		this.firePropertyChange(event,oldState,state,this);
		this.setCurrentState(state);
	},

	/**
	 * 函数名称：Rainier.UI.V2.DynamicModel.<br>
	 * 函数功能：<br>
	 * 参数输入：<br>
	 * 参数输出：<br>
	 * 函数返回：<br>
	 * 异常信息：<br>
	 */
	getCurrentState : function(){
		return this.currentState;
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.DynamicModel.setCurrentState<br>
	 * 函数功能：<br>
	 * 参数输入：<br>
	 * 参数输出：<br>
	 * 函数返回：<br>
	 * 异常信息：<br>
	 */
	setCurrentState : function(state){
		this.currentState = state;
	},
});

Rainier.UI.V2.DynamicModel.DYNAMIC_MODEL_EVENT_CHANGE_STATE = 'dynamic model event change state';